#ifndef VECTOR_H
#define VECTOR_H

#include <iostream>
#include <sstream>
template< int N, class T >
class Vector
{
public:
    Vector();
    ~Vector();
    
    T& operator []( int i );
    
    /*
     *	Vector affectation
     */
    void operator = ( Vector< N, T > vect );   
    
    /*
     *	Return the std::string representation of the vecto "{ x, y, z}"
     */
    std::string toString();
    
    
    /*
     *	Vector multiplication
     */
    Vector< N, T > operator * ( T n );
    void operator *= ( T n );
    
    /*
	 * Vector additon
	 */
    Vector< N, T > operator +( Vector< N, T > vect );
    void operator += ( Vector< N, T > vect );
    
protected:
	T m_data[ N ];
};
#include "Vector.cc"
#endif
